<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>WeakMap的使用</title>
</head>
<body>
    
</body>
<script>
    /*
        什么是WeakMap -- WeakMap类型和Map类型很像  只是WeakMap类型的key只能是存放对象类型
            Map类型的key是可以存放所有类型的 方法 数组 字符串都行
        WeakMap和WeakSet非常像  都是弱引用类型 
            所以WeakMap一些设计算法的方法都不能使用 例如 keys() values() entries()都不能使用
    */
    let obj = {
        name:'jimmy'
    }
    let wmap = new WeakMap()
    wmap.set(obj,'jimmy')
    console.log(wmap) //WeakMap {{…} => "jimmy"}
    //console.log(wmap.set('jimmy','xuexue')) //Invalid value used as weak map key   值类型不能够做i为WeakMap类型的key
    console.log(wmap.has(obj))  //truw  has()是判断方法 
    console.log(wmap.delete(obj))  //true  delete删除方法 如果删除成功返回true
    
    // WeakMap是没有clear()方法的
</script>
</html>